package br.com.english.controller;

import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.english.entity.Usuario;
import br.com.english.service.UsuarioService;

@Resource
@Path("/login")
public class LoginController {

	private UsuarioService service;
	private final Result result;

	public LoginController(UsuarioService service, Result result) {
		this.service = service;
		this.result = result;
	}

	@Path("/")
	public void login() {
	}
	
	@Path("/verifica")
	public void verificaLogin(Usuario usuario){
		try {
			Usuario user = service.carregarPorNome(usuario);
			if (user != null) {
				if (user.getSenha().equals(usuario.getSenha())) {
					result.redirectTo(TestandoController.class).paginaTeste();
				}else{
					result.include("mensagem", "Usuário Invalido.");
					result.redirectTo(this).login();
				}
			} else {
				result.include("mensagem", "Usuário Invalido.");
				result.redirectTo(this).login();
			}
		} catch (RuntimeException e) {
			result.include("mensagem", "Ocorreu um erro na autenticação.");
			result.redirectTo(this).login();
		}
	}

}
